The Growing Esports Industry

The first competitive games started on arcade machines in the late 1970s with Space Invader and Twin Galaxies where the professional players strive to beat each other’s record to become the world record holder. In the 1980s, more games were released that many of us know today like Pac-Man. A shift from arcades to gaming consoles occurred with the release of Nintendo systems. The new popularized way of gaming was becoming more accessible to the average consumer than ever before. As Nintendo continued to grow through the 1990s, the fast advancing computer technology became a new and different mode of gaming with personal computers.

1980s competitve games

The large amount of competitive users led to organized competitions where tens of millions of fans of the top games follow these matches allowing the game companies to profit. Eventually these competitive matches transformed into a sport known as Esports. Many of the top games help create and influence the start of Esports teams and organizations made of world-class gamers. In total, hundreds of millions of US dollars are profitted from the Esports industries only in terms of prize earnings from professional tournaments.

As seen above, in late 1990s to the late 2010s there was a exponential growth in the tournaments’ prize earnings from all Esports teams, orgnaizations, and all variety of competitive. In fact the earnings from tournaments in the last 3 years totals to more than the 20 years before! Unfortunately for the Esports industry in 2020, the toll of the COVID-19 pandemic is evident where large gatherings were impossible to view the professional matches. the canceled tournaments destryed the potential of growth of Esports although some game companies like Riot Games worked with the teams to provide a remote competitive experience to provide a fair tournament to take place (more on this later).

These Esports organizations are created with a focus on a specific game and eventually grow from tournament prizes.

The bargraph above shows the top Esports organzations/teams around the world with teams that have contracted professional players who competed in professional matches and earn the tournaments prizes. One of the games that provide one the largest percent of the organization’s total earnings is League of Legends.

Of the top four Esports teams that have earned the majority of their prize from professional tournaments from League of Legends, the three teams, SK Telecom T1, Invictus Gaming, and Fnatic, have all won the international League of Legends Worlds tournament. League of legends have impacted the massive growth of the largest Esports teams in the world.

What is League of Legends?

Map of League of Legends - Summoner’s Rift

But before we can discuss the impact of League of Legends, it is good to know what the praise and large following of the game is about. Created in 2009, League legends is a team multiplayer online battle arena where the two teams made of 5 players where the goal is to defeat the enemies’ “nexus” or their base located on opposite sides of the map. The map, called "Summoner’s Rift, is split by three lanes lined with three turrets in each lane and two more turrets protecting the nexus for each side of the map. In between each lane is an area known as the jungle where jungle monsters (raptors, krugs, wolves, gromp, golem, blue sentinel, and red brambleback)reside. There is also a river that runs across the map with pits home to the Rift Herald, Baron Nashor, and Elemental Dragons.

Each team chooses a champion that spawn on the map that have with an assigned role: top lane, mid lane, bot lane, support (also in the bot lane), and jungler. Based of the name of their roles, they will play the game in those repective locations. When the game starts, the lane players (also called laners) meet each other in their lane with a small group of minions that continously respawn and walk from the nexus down their repective lanes, while the jungler traverses through the jungle. In each lane, the laners goal is to kill the minions for earning in game gold and also attempt to kill the opposing enemy laner which also grants them a significant amount more gold. The junglers also earn in game gold by killing the jungler monsters or visiting a lane to kill the enemy. This process of killing minions, monsters, and enemy players goes on as each player accumulates gold in order to purchase specialized items to increase the strength and health of each player’s champion. The stronger the champion becomes the higher the chance the team can kill the enemies and push towards their base to destray the nexus and win the match.

The becomes much more complicated when professional players and teams consider the smallest details, stats, and actions. A small mistake by buying the wrong in game item or walking to the wrong area and getting ambushed by the enemy can turn the game around towards the team that would seem to be losing.

Professional League of Legends Esports

-use the data and explain its meaning - use the high diamond ranked games data - use the pro matches to show the level and difference between diamond and pro player games

Why is this game imapctful to Esports?

LS0tDQp0aXRsZTogIkVzcG9ydHM6IExlYWd1ZSBvZiBMZWdlbmRzIg0KYXV0aG9yOiAiKkNoYXJsaWUgVHJhbioiDQpkYXRlOiAiMTIvMTgvMjAyMCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAga2VlcF9tZDogVFJVRQ0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGRmX3ByaW50OiBwYWdlZA0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICB0aGVtZTogdW5pdGVkDQogIA0KLS0tDQoNCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGVycm9yPVRSVUUsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UpDQpgYGANCg0KYGBge3IgbGlicmFyaWVzLCBlY2hvPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpICAgICAjIGZvciBkYXRhIGNsZWFuaW5nIGFuZCBwbG90dGluZw0KbGlicmFyeShsdWJyaWRhdGUpICAgICAjIGZvciBkYXRlIG1hbmlwdWxhdGlvbg0KbGlicmFyeShnZ3RoZW1lcykgICAgICAjIGZvciBtb3JlIHRoZW1lcyAoaW5jbHVkaW5nIHRoZW1lX21hcCgpKQ0KbGlicmFyeShnZ2FuaW1hdGUpICAgICAjIGZvciBhZGRpbmcgYW5pbWF0aW9uIGxheWVycyB0byBnZ3Bsb3RzDQpsaWJyYXJ5KGdpZnNraSkgICAgICAgICMgZm9yIGNyZWF0aW5nIHRoZSBnaWYgKGRvbid0IG5lZWQgdG8gbG9hZCB0aGlzIGxpYnJhcnkgZXZlcnkgdGltZSxidXQgbmVlZCBpdCBpbnN0YWxsZWQpDQpsaWJyYXJ5KHRyYW5zZm9ybXIpICAgICMgZm9yICJ0d2VlbmluZyIgKGdnYW5pbWF0ZSkNCmxpYnJhcnkocGF0Y2h3b3JrKSAgICAgIyBmb3IgbmljZWx5IGNvbWJpbmluZyBnZ3Bsb3QyIGdyYXBocyAgDQpsaWJyYXJ5KGd0KSAgICAgICAgICAgICMgZm9yIGNyZWF0aW5nIG5pY2UgdGFibGVzDQpsaWJyYXJ5KHN0cmluZ3IpICAgICAgICMgZm9yIHN0cmluZyBjb252ZXJzaW9ucw0KbGlicmFyeShnZ2ltYWdlKSAgICAgICAjIGZvciByZWFkaW5nIGluIGltYWdlcw0KbGlicmFyeShwbmcpDQpgYGANCg0KYGBge3IgZGF0YSwgZWNobyA9IEZBTFNFfQ0KR2VuZXJhbEVzcG9ydERhdGEgPC0gcmVhZC5jc3YoIkdlbmVyYWxFc3BvcnREYXRhLmNzdiIpDQoNCkhpc3RvcmljYWxFc3BvcnREYXRhIDwtIHJlYWQuY3N2KCJIaXN0b3JpY2FsRXNwb3J0RGF0YS5jc3YiKSAlPiUgDQogIG11dGF0ZShEYXRlID0gZG15KERhdGUpKSAlPiUgDQogIG11dGF0ZSh5ZWFyID0geWVhcihEYXRlKSkNCg0KaGlnaF9kaWFtb25kX3JhbmtlZF8xMG1pbiA8LSByZWFkLmNzdigiaGlnaF9kaWFtb25kX3JhbmtlZF8xMG1pbi5jc3YiKQ0KDQp0d2l0Y2hkYXRhIDwtIHJlYWQuY3N2KCJ0d2l0Y2hkYXRhLmNzdiIpDQoNCnByb19sb2xfY2hhbXBzIDwtIHJlYWQuY3N2KCJjaGFtcGlvbl9zdGF0cy5jc3YiKQ0KDQpwcm9fbG9sX21hdGNoZXMgPC0gcmVhZC5jc3YoIm1hdGNoZXMyMDIwLmNzdiIpDQoNCnRlYW1fZWFybmluZ3MgPC0gcmVhZC5jc3YoImVlLmNzdiIpDQoNCmxvbF90b3VybmFtZW50X2Vhcm5pbmdzIDwtIHJlYWQuY3N2KCJsb2xlYXJuaW5nc2J5dGVhbS5jc3YiKQ0KYGBgDQoNCiMjIFRoZSBHcm93aW5nIEVzcG9ydHMgSW5kdXN0cnkNCiAgDQpUaGUgZmlyc3QgY29tcGV0aXRpdmUgZ2FtZXMgc3RhcnRlZCBvbiBhcmNhZGUgbWFjaGluZXMgaW4gdGhlIGxhdGUgMTk3MHMgd2l0aCBTcGFjZSBJbnZhZGVyIGFuZCBUd2luIEdhbGF4aWVzIHdoZXJlIHRoZSBwcm9mZXNzaW9uYWwgcGxheWVycyBzdHJpdmUgdG8gYmVhdCBlYWNoIG90aGVyJ3MgcmVjb3JkIHRvIGJlY29tZSB0aGUgd29ybGQgcmVjb3JkIGhvbGRlci4gSW4gdGhlIDE5ODBzLCBtb3JlIGdhbWVzIHdlcmUgcmVsZWFzZWQgdGhhdCBtYW55IG9mIHVzIGtub3cgdG9kYXkgbGlrZSBQYWMtTWFuLiBBIHNoaWZ0IGZyb20gYXJjYWRlcyB0byBnYW1pbmcgY29uc29sZXMgb2NjdXJyZWQgd2l0aCB0aGUgcmVsZWFzZSBvZiBOaW50ZW5kbyBzeXN0ZW1zLiBUaGUgbmV3IHBvcHVsYXJpemVkIHdheSBvZiBnYW1pbmcgd2FzIGJlY29taW5nIG1vcmUgYWNjZXNzaWJsZSB0byB0aGUgYXZlcmFnZSBjb25zdW1lciB0aGFuIGV2ZXIgYmVmb3JlLiBBcyBOaW50ZW5kbyBjb250aW51ZWQgdG8gZ3JvdyB0aHJvdWdoIHRoZSAxOTkwcywgdGhlIGZhc3QgYWR2YW5jaW5nIGNvbXB1dGVyIHRlY2hub2xvZ3kgYmVjYW1lIGEgbmV3IGFuZCBkaWZmZXJlbnQgbW9kZSBvZiBnYW1pbmcgd2l0aCBwZXJzb25hbCBjb21wdXRlcnMuIA0KDQohWzE5ODBzIGNvbXBldGl0dmUgZ2FtZXNdKDE5ODBzZ2FtZXNwaWN0dXJlLnBuZykNCg0KVGhlIGxhcmdlIGFtb3VudCBvZiBjb21wZXRpdGl2ZSB1c2VycyBsZWQgdG8gb3JnYW5pemVkIGNvbXBldGl0aW9ucyB3aGVyZSB0ZW5zIG9mIG1pbGxpb25zIG9mIGZhbnMgb2YgdGhlIHRvcCBnYW1lcyBmb2xsb3cgdGhlc2UgbWF0Y2hlcyBhbGxvd2luZyB0aGUgZ2FtZSBjb21wYW5pZXMgdG8gcHJvZml0LiBFdmVudHVhbGx5IHRoZXNlIGNvbXBldGl0aXZlIG1hdGNoZXMgdHJhbnNmb3JtZWQgaW50byBhIHNwb3J0IGtub3duIGFzIEVzcG9ydHMuIE1hbnkgb2YgdGhlIHRvcCBnYW1lcyBoZWxwIGNyZWF0ZSBhbmQgaW5mbHVlbmNlIHRoZSBzdGFydCBvZiBFc3BvcnRzIHRlYW1zIGFuZCBvcmdhbml6YXRpb25zIG1hZGUgb2Ygd29ybGQtY2xhc3MgZ2FtZXJzLiBJbiB0b3RhbCwgaHVuZHJlZHMgb2YgbWlsbGlvbnMgb2YgVVMgZG9sbGFycyBhcmUgcHJvZml0dGVkIGZyb20gdGhlIEVzcG9ydHMgaW5kdXN0cmllcyBvbmx5IGluIHRlcm1zIG9mIHByaXplIGVhcm5pbmdzIGZyb20gcHJvZmVzc2lvbmFsIHRvdXJuYW1lbnRzLiANCmBgYHtyIGVjaG8gPSBGQUxTRX0NCmJhcmxpbmVncmFwaCA8LSBIaXN0b3JpY2FsRXNwb3J0RGF0YSAlPiUgDQogIGdyb3VwX2J5KHllYXIpICU+JSANCiAgc3VtbWFyaXNlKHN1bUVhcm5pbmdzID0gc3VtKEVhcm5pbmdzKS8xMDAwMDAwKSANCiAgDQogIA0KZ3Jvd3RoX3RpbWUgPC0gZ2dwbG90KGJhcmxpbmVncmFwaCwgYWVzKHggPSB5ZWFyLA0KICAgICAgICAgICAgIHkgPSBzdW1FYXJuaW5ncykpKw0KICBnZW9tX2NvbChjb2xvciA9ICJkYXJrYmx1ZSIsDQogICAgICAgICAgIGZpbGwgPSAid2hpdGUiKSsNCiAgZ2VvbV9saW5lKGNvbG9yID0gInJlZCIsDQogICAgICAgICAgICBzaXplID0gMSkrDQogIGxhYnModGl0bGUgPSAiRXNwb3J0cyBQcm9mZXNzaW9uYWwgTWF0Y2hlcyBQcml6ZSBFYXJuaW5ncyIsDQogICAgICAgc3VidGl0bGUgPSAiKE1pbGxpb25zIG9mIFVTIERvbGxhcnMpIiwNCiAgICAgICB4ID0gIiIsDQogICAgICAgeSA9ICIiLA0KICAgICAgIGNhcHRpb24gPSAiRGF0YSBmcm9tIEVzcG9ydHNFYXJuaW5ncy5jb20iKSsNCiAgdGhlbWVfbWluaW1hbCgpDQoNCnBlcnNwZWN0aXZlYmFyIDwtIEhpc3RvcmljYWxFc3BvcnREYXRhICU+JSANCiAgbXV0YXRlKGVyYSA9IGlmZWxzZSh5ZWFyID49IDE5OTggJiB5ZWFyIDw9IDIwMTcsDQogICAgICAgICAgICAgICAgICAgICAgIjE5OTggLSAyMDE3IiwNCiAgICAgICAgICAgICAgICAgICAgICAiMjAxOCAtIDIwMjAiKSkgJT4lDQogIGdyb3VwX2J5KGVyYSkgJT4lDQogIHN1bW1hcmlzZSh0b3RhbF9lYXJuaW5ncyA9IHN1bShFYXJuaW5ncykvMTAwMDAwMCkgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBlcmEsDQogICAgICAgICAgICAgeSA9IHRvdGFsX2Vhcm5pbmdzLA0KICAgICAgICAgICAgIGZpbGwgPSBlcmEpKSsNCiAgZ2VvbV9jb2woKSsNCiAgbGFicyh5ID0gIiIsDQogICAgICAgeCA9ICIiLA0KICAgICAgIGNhcHRpb24gPSAiQ3JlYXRlZCBieSBDaGFybGllIFRyYW4iKSsNCiAgdGhlbWVfbWluaW1hbCgpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpDQoNCmdyb3d0aF90aW1lICsgcGVyc3BlY3RpdmViYXIgDQpgYGANCg0KQXMgc2VlbiBhYm92ZSwgaW4gbGF0ZSAxOTkwcyB0byB0aGUgbGF0ZSAyMDEwcyB0aGVyZSB3YXMgYSBleHBvbmVudGlhbCBncm93dGggaW4gdGhlIHRvdXJuYW1lbnRzJyBwcml6ZSBlYXJuaW5ncyBmcm9tIGFsbCBFc3BvcnRzIHRlYW1zLCBvcmduYWl6YXRpb25zLCBhbmQgYWxsIHZhcmlldHkgb2YgY29tcGV0aXRpdmUuIEluIGZhY3QgdGhlIGVhcm5pbmdzIGZyb20gdG91cm5hbWVudHMgaW4gdGhlIGxhc3QgMyB5ZWFycyB0b3RhbHMgdG8gbW9yZSB0aGFuIHRoZSAyMCB5ZWFycyBiZWZvcmUhIFVuZm9ydHVuYXRlbHkgZm9yIHRoZSBFc3BvcnRzIGluZHVzdHJ5IGluIDIwMjAsIHRoZSB0b2xsIG9mIHRoZSBDT1ZJRC0xOSBwYW5kZW1pYyBpcyBldmlkZW50IHdoZXJlIGxhcmdlIGdhdGhlcmluZ3Mgd2VyZSBpbXBvc3NpYmxlIHRvIHZpZXcgdGhlIHByb2Zlc3Npb25hbCBtYXRjaGVzLiB0aGUgY2FuY2VsZWQgdG91cm5hbWVudHMgZGVzdHJ5ZWQgdGhlIHBvdGVudGlhbCBvZiBncm93dGggb2YgRXNwb3J0cyBhbHRob3VnaCBzb21lIGdhbWUgY29tcGFuaWVzIGxpa2UgUmlvdCBHYW1lcyB3b3JrZWQgd2l0aCB0aGUgdGVhbXMgdG8gcHJvdmlkZSBhIHJlbW90ZSBjb21wZXRpdGl2ZSBleHBlcmllbmNlIHRvIHByb3ZpZGUgYSBmYWlyIHRvdXJuYW1lbnQgdG8gdGFrZSBwbGFjZSAobW9yZSBvbiB0aGlzIGxhdGVyKS4NCg0KVGhlc2UgRXNwb3J0cyBvcmdhbml6YXRpb25zIGFyZSBjcmVhdGVkIHdpdGggYSBmb2N1cyBvbiBhIHNwZWNpZmljIGdhbWUgYW5kIGV2ZW50dWFsbHkgZ3JvdyBmcm9tIHRvdXJuYW1lbnQgcHJpemVzLg0KDQpgYGB7ciwgZWNobz1GQUxTRX0NCnRvcF90ZWFtX2Vhcm5pbmdzIDwtIHRlYW1fZWFybmluZ3MgJT4lIA0KICBhcnJhbmdlKGRlc2MoVG90YWxVU0RQcml6ZSkpICU+JSANCiAgZmlsdGVyKFRvdGFsVVNEUHJpemUgPiA5MDAwMDAwKQ0KDQp0ZWFtbGlxdWlkIDwtICJUZWFtX0xpcXVpZGxvZ28ucG5nIg0Kb2cgPC0gIk9HX0VzcG9ydHNsb2dvLnBuZyINCmV2aWxnZW5pdXNlcyA8LSAiZWdsb2dvLnBuZyINCmZuYXRpYyA8LSAiRm5hdGljbG9nb19zcXVhcmUucG5nIg0KdmlydHVzLnBvciA8LSAiVmlydHVzLnByb2xvZ29fc3F1YXJlLnBuZyINCm5ld2JlZSA8LSAiTmV3YmVlbG9nb19zcXVhcmUucG5nIg0KdmljaWdhbWluZyA8LSAiNjAwcHgtVklDSV9HYW1pbmcucG5nIg0KdGVhbXNlY3JldCA8LSAiVGVhbV9TZWNyZXRfKFZpZXRuYW1lc2VfVGVhbSlsb2dvX3NxdWFyZS5wbmciDQppbnZpY3R1c2dhbWluZyA8LSAicG5nLXRyYW5zcGFyZW50LWRvdGEtMi1hc2lhLWNoYW1waW9uc2hpcHMtMjAxNS10aGUtaW50ZXJuYXRpb25hbC0yMDE0LWludmljdHVzLWdhbWluZy1ldmlsLWdlbml1c2VzLW90aGVycy1nYW1lLWJ1cm5pbmctbG9nby5wbmciDQpuYXR1c3ZpbmNlcmUgPC0gIk5hVmlfbG9nby5wbmciDQpsZ2RnYW1pbmcgPC0gIkxHRF9HYW1pbmdsb2dvX3NxdWFyZS5wbmciDQpjbG91ZDkgPC0gIjEyODBweC1DbG91ZDlfbG9nby5zdmcucG5nIg0Kc2t0IDwtICJTS19UZWxlY29tX1QxbG9nb19zcXVhcmUucG5nIg0Kd2luZ3NnYW1pbmcgPC0gIjYwMHB4LVdpbmdzLnBuZyINCnBhcmlzc2FpbnRnZXJtYWluIDwtICJQYXJpc19TYWludC1HZXJtYWluX2VTcG9ydHNsb2dvX3NxdWFyZS5wbmciDQpmYXplY2xhbiA8LSAiMTIwMHB4LUZhemVfQ2xhbi5wbmciDQoNCnRvcF90ZWFtX2ltYWdlcyA8LSB0aWJibGUoaW1hZ2UgPSBjKHRlYW1saXF1aWQsIG9nLCBldmlsZ2VuaXVzZXMsIGZuYXRpYywgdmlydHVzLnBvciwgbmV3YmVlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmljaWdhbWluZywgdGVhbXNlY3JldCwgaW52aWN0dXNnYW1pbmcsIG5hdHVzdmluY2VyZSwgbGdkZ2FtaW5nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvdWQ5LCBza3QsIHdpbmdzZ2FtaW5nLCBwYXJpc3NhaW50Z2VybWFpbiwgZmF6ZWNsYW4pKQ0KDQp0b3BfdGVhbV9lYXJuaW5nc19pbWFnZXMgPC0gdG9wX3RlYW1fZWFybmluZ3MgJT4lIA0KICBtdXRhdGUodG9wX3RlYW1faW1hZ2VzKQ0KDQp0b3BfdGVhbV9lYXJuaW5nc19pbWFnZXMgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBUb3RhbFVTRFByaXplLzEwMDAwMDAsDQogICAgICAgICAgICAgICB5ID0gZmN0X3Jlb3JkZXIoVGVhbU5hbWUsIFRvdGFsVVNEUHJpemUpLA0KICAgICAgICAgICAgIGZpbGwgPSBUb3RhbFVTRFByaXplKSkrDQogIGdlb21fY29sKCkrDQogIGdlb21faW1hZ2UoYWVzKGltYWdlID0gaW1hZ2UpLCANCiAgICAgICAgICAgICBzaXplID0gMC4wNSkrDQogIHRoZW1lX21pbmltYWwoKSsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSsNCiAgc2NhbGVfeF9jb250aW51b3VzKCkrDQogIGxhYnModGl0bGUgPSAiVG90YWwgVG91cm5hbWVudCBFYXJuaW5ncyBieSBUZWFtIiwNCiAgICAgICBzdWJ0aXRsZSA9ICIoTWlsbGlvbnMgb2YgVVMgRG9sbGFycykiLA0KICAgICAgIHggPSAiIiwNCiAgICAgICB5ID0gIiIsDQogICAgICAgY2FwdGlvbiA9ICJEYXRhIGZyb20gRXNwb3J0c0Vhcm5pbmdzLmNvbSwgQ3JlYXRlZCBieSBDaGFybGllIFRyYW4iKQ0KYGBgDQoNClRoZSBiYXJncmFwaCBhYm92ZSBzaG93cyB0aGUgdG9wIEVzcG9ydHMgb3JnYW56YXRpb25zL3RlYW1zIGFyb3VuZCB0aGUgd29ybGQgd2l0aCB0ZWFtcyB0aGF0IGhhdmUgY29udHJhY3RlZCBwcm9mZXNzaW9uYWwgcGxheWVycyB3aG8gY29tcGV0ZWQgaW4gcHJvZmVzc2lvbmFsIG1hdGNoZXMgYW5kIGVhcm4gdGhlIHRvdXJuYW1lbnRzIHByaXplcy4gT25lIG9mIHRoZSBnYW1lcyB0aGF0IHByb3ZpZGUgb25lIHRoZSBsYXJnZXN0IHBlcmNlbnQgb2YgdGhlIG9yZ2FuaXphdGlvbidzIHRvdGFsIGVhcm5pbmdzIGlzIExlYWd1ZSBvZiBMZWdlbmRzLg0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KbG9sX3ZzX3RvdGFsX2Vhcm5pbmdzIDwtIGxvbF90b3VybmFtZW50X2Vhcm5pbmdzICU+JSANCiAgZmlsdGVyKFRlYW1OYW1lICVpbiUgYygiVGVhbSBMaXF1aWQiLCAiT0ciLCAiRXZpbCBHZW5pdXNlcyIsICJGbmF0aWMiLCAiVmlydHVzLnBybyIsICJOZXdiZWUiLA0KICAgICAgICAgICAgICAgICAgICAgICAiVmljaSBHYW1pbmciLCAiVGVhbSBTZWNyZXQiLCAiSW52aWN0dXMgR2FtaW5nIiwgIk5hdHVzIFZpbmNlcmUiLCAiTEdEIEdhbWluZyIsDQogICAgICAgICAgICAgICAgICAgICAgICJDbG91ZDkiLCAiU0sgVGVsZWNvbSBUMSIsICJXaW5ncyBHYW1pbmciLCAiUGFyaXMgU2FpbnQtR2VybWFpbiBFc3BvcnRzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICJGYXplIENsYW4iKSkgJT4lIA0KICBsZWZ0X2pvaW4odG9wX3RlYW1fZWFybmluZ3MsDQogICAgICAgICAgICBieSA9ICJUZWFtTmFtZSIpICU+JSANCiAgc2VsZWN0KC1zdGFydHNfd2l0aCgiVGVhbUlkIikpICU+JSANCiAgc2VsZWN0KC1zdGFydHNfd2l0aCgiVG90YWxUb3VyIikpICU+JSANCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBzdGFydHNfd2l0aCgiVG90YWxVU0RQcml6ZSIpLA0KICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAidmFyaWFibGUiLA0KICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gInByaXplX2Vhcm5pbmdzIikgJT4lIA0KICBtdXRhdGUodmFyaWFibGUgPSBpZmVsc2UodmFyaWFibGUgPT0gIlRvdGFsVVNEUHJpemUueCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvdGFsIFByaXplZCBFYXJuZWQgXG4oTGVhZ3VlIG9mIExlZ2VuZHMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJUb3RhbCBQcml6ZSBFYXJuZWQiKSkNCg0KcGVyY2VudGFnZV9sb2xfZWFybmluZ3MgPC0gbG9sX3RvdXJuYW1lbnRfZWFybmluZ3MgJT4lIA0KICBmaWx0ZXIoVGVhbU5hbWUgJWluJSBjKCJUZWFtIExpcXVpZCIsICJPRyIsICJFdmlsIEdlbml1c2VzIiwgIkZuYXRpYyIsICJWaXJ0dXMucHJvIiwgIk5ld2JlZSIsDQogICAgICAgICAgICAgICAgICAgICAgICJWaWNpIEdhbWluZyIsICJUZWFtIFNlY3JldCIsICJJbnZpY3R1cyBHYW1pbmciLCAiTmF0dXMgVmluY2VyZSIsICJMR0QgR2FtaW5nIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIkNsb3VkOSIsICJTSyBUZWxlY29tIFQxIiwgIldpbmdzIEdhbWluZyIsICJQYXJpcyBTYWludC1HZXJtYWluIEVzcG9ydHMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgIkZhemUgQ2xhbiIpKSAlPiUgDQogIGxlZnRfam9pbih0b3BfdGVhbV9lYXJuaW5ncywNCiAgICAgICAgICAgIGJ5ID0gIlRlYW1OYW1lIikgJT4lIA0KICBzZWxlY3QoLXN0YXJ0c193aXRoKCJUZWFtSWQiKSkgJT4lIA0KICBzZWxlY3QoLXN0YXJ0c193aXRoKCJUb3RhbFRvdXIiKSkgJT4lIA0KICBtdXRhdGUocHJvcG9ydGlvbiA9IFRvdGFsVVNEUHJpemUueC9Ub3RhbFVTRFByaXplLnkpDQogDQoNCmdyYXBoMyA8LSBsb2xfdnNfdG90YWxfZWFybmluZ3MgJT4lDQogIGdncGxvdCgpICsNCiAgZ2VvbV9jb2woYWVzKHggPSBwcml6ZV9lYXJuaW5ncy8xMDAwMDAwLA0KICAgICAgICAgICAgICAgeSA9IGZjdF9yZW9yZGVyKFRlYW1OYW1lLCBwcml6ZV9lYXJuaW5ncykpKSArDQogIGZhY2V0X2dyaWQodmFycyh2YXJpYWJsZSkpKw0KICB0aGVtZV9taW5pbWFsKCkrDQogIGxhYnMoeCA9ICJNaWxsaW9ucyBvZiBVUyBEb2xsYXJzIiwNCiAgICAgICB5ID0gIiIpDQoNCmdyYXBoNCA8LSBwZXJjZW50YWdlX2xvbF9lYXJuaW5ncyAlPiUgDQogIGdncGxvdChhZXMoeCA9IGZjdF9yZW9yZGVyKFRlYW1OYW1lLCBwcm9wb3J0aW9uKSwNCiAgICAgICAgICAgICB5ID0gcHJvcG9ydGlvbikpKw0KICBnZW9tX2NvbCgpKw0KICB0aGVtZV9taW5pbWFsKCkrDQogIGxhYnModGl0bGUgPSAiUHJvcG9ydGlvbiBvZiBQcml6ZSBFYXJuZWQgZnJvbSBcbkxlYWd1ZSBvZiBMZWdlbmRzIiwNCiAgICAgICB4ID0gIiIsIA0KICAgICAgIHkgPSAiIikrDQogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0PTEpKQ0KDQpncmFwaDQgKyBncmFwaDMgKyBsYWJzKGNhcHRpb24gPSAiRGF0YSBmcm9tIEVzcG9ydHNFYXJuaW5ncy5jb20sIENyZWF0ZWQgYnkgQ2hhcmxpZSBUcmFuIikNCmBgYA0KDQpPZiB0aGUgdG9wIGZvdXIgRXNwb3J0cyB0ZWFtcyB0aGF0IGhhdmUgZWFybmVkIHRoZSBtYWpvcml0eSBvZiB0aGVpciBwcml6ZSBmcm9tIHByb2Zlc3Npb25hbCB0b3VybmFtZW50cyBmcm9tIExlYWd1ZSBvZiBMZWdlbmRzLCB0aGUgdGhyZWUgdGVhbXMsIFNLIFRlbGVjb20gVDEsIEludmljdHVzIEdhbWluZywgYW5kIEZuYXRpYywgaGF2ZSBhbGwgd29uIHRoZSBpbnRlcm5hdGlvbmFsIExlYWd1ZSBvZiBMZWdlbmRzIFdvcmxkcyB0b3VybmFtZW50LiBMZWFndWUgb2YgbGVnZW5kcyBoYXZlIGltcGFjdGVkIHRoZSBtYXNzaXZlIGdyb3d0aCBvZiB0aGUgbGFyZ2VzdCBFc3BvcnRzIHRlYW1zIGluIHRoZSB3b3JsZC4NCg0KIyMgV2hhdCBpcyBMZWFndWUgb2YgTGVnZW5kcz8NCg0KIVtNYXAgb2YgTGVhZ3VlIG9mIExlZ2VuZHMgLSBTdW1tb25lcidzIFJpZnRdKFN1bW1vbmVyJ3NfUmlmdF9VcGRhdGVfTWFwLnBuZykNCg0KDQpCdXQgYmVmb3JlIHdlIGNhbiBkaXNjdXNzIHRoZSBpbXBhY3Qgb2YgTGVhZ3VlIG9mIExlZ2VuZHMsIGl0IGlzIGdvb2QgdG8ga25vdyB3aGF0IHRoZSBwcmFpc2UgYW5kIGxhcmdlIGZvbGxvd2luZyBvZiB0aGUgZ2FtZSBpcyBhYm91dC4gQ3JlYXRlZCBpbiAyMDA5LCBMZWFndWUgbGVnZW5kcyBpcyBhIHRlYW0gbXVsdGlwbGF5ZXIgb25saW5lIGJhdHRsZSBhcmVuYSB3aGVyZSB0aGUgdHdvIHRlYW1zIG1hZGUgb2YgNSBwbGF5ZXJzIHdoZXJlIHRoZSBnb2FsIGlzIHRvIGRlZmVhdCB0aGUgZW5lbWllcycgIm5leHVzIiBvciB0aGVpciBiYXNlIGxvY2F0ZWQgb24gb3Bwb3NpdGUgc2lkZXMgb2YgdGhlIG1hcC4gVGhlIG1hcCwgY2FsbGVkICJTdW1tb25lcidzIFJpZnQsIGlzIHNwbGl0IGJ5IHRocmVlIGxhbmVzIGxpbmVkIHdpdGggdGhyZWUgdHVycmV0cyBpbiBlYWNoIGxhbmUgYW5kIHR3byBtb3JlIHR1cnJldHMgcHJvdGVjdGluZyB0aGUgbmV4dXMgZm9yIGVhY2ggc2lkZSBvZiB0aGUgbWFwLiBJbiBiZXR3ZWVuIGVhY2ggbGFuZSBpcyBhbiBhcmVhIGtub3duIGFzIHRoZSBqdW5nbGUgd2hlcmUganVuZ2xlIG1vbnN0ZXJzIChyYXB0b3JzLCBrcnVncywgd29sdmVzLCBncm9tcCwgZ29sZW0sIGJsdWUgc2VudGluZWwsIGFuZCByZWQgYnJhbWJsZWJhY2spcmVzaWRlLiBUaGVyZSBpcyBhbHNvIGEgcml2ZXIgdGhhdCBydW5zIGFjcm9zcyB0aGUgbWFwIHdpdGggcGl0cyBob21lIHRvIHRoZSBSaWZ0IEhlcmFsZCwgQmFyb24gTmFzaG9yLCBhbmQgRWxlbWVudGFsIERyYWdvbnMuIA0KDQpFYWNoIHRlYW0gY2hvb3NlcyBhIGNoYW1waW9uIHRoYXQgc3Bhd24gb24gdGhlIG1hcCB0aGF0IGhhdmUgd2l0aCBhbiBhc3NpZ25lZCByb2xlOiB0b3AgbGFuZSwgbWlkIGxhbmUsIGJvdCBsYW5lLCBzdXBwb3J0IChhbHNvIGluIHRoZSBib3QgbGFuZSksIGFuZCBqdW5nbGVyLiBCYXNlZCBvZiB0aGUgbmFtZSBvZiB0aGVpciByb2xlcywgdGhleSB3aWxsIHBsYXkgdGhlIGdhbWUgaW4gdGhvc2UgcmVwZWN0aXZlIGxvY2F0aW9ucy4gV2hlbiB0aGUgZ2FtZSBzdGFydHMsIHRoZSBsYW5lIHBsYXllcnMgKGFsc28gY2FsbGVkIGxhbmVycykgbWVldCBlYWNoIG90aGVyIGluIHRoZWlyIGxhbmUgd2l0aCBhIHNtYWxsIGdyb3VwIG9mIG1pbmlvbnMgdGhhdCBjb250aW5vdXNseSByZXNwYXduIGFuZCB3YWxrIGZyb20gdGhlIG5leHVzIGRvd24gdGhlaXIgcmVwZWN0aXZlIGxhbmVzLCB3aGlsZSB0aGUganVuZ2xlciB0cmF2ZXJzZXMgdGhyb3VnaCB0aGUganVuZ2xlLiBJbiBlYWNoIGxhbmUsIHRoZSBsYW5lcnMgZ29hbCBpcyB0byBraWxsIHRoZSBtaW5pb25zIGZvciBlYXJuaW5nIGluIGdhbWUgZ29sZCBhbmQgYWxzbyBhdHRlbXB0IHRvIGtpbGwgdGhlIG9wcG9zaW5nIGVuZW15IGxhbmVyIHdoaWNoIGFsc28gZ3JhbnRzIHRoZW0gYSBzaWduaWZpY2FudCBhbW91bnQgbW9yZSBnb2xkLiBUaGUganVuZ2xlcnMgYWxzbyBlYXJuIGluIGdhbWUgZ29sZCBieSBraWxsaW5nIHRoZSBqdW5nbGVyIG1vbnN0ZXJzIG9yIHZpc2l0aW5nIGEgbGFuZSB0byBraWxsIHRoZSBlbmVteS4gVGhpcyBwcm9jZXNzIG9mIGtpbGxpbmcgbWluaW9ucywgbW9uc3RlcnMsIGFuZCBlbmVteSBwbGF5ZXJzIGdvZXMgb24gYXMgZWFjaCBwbGF5ZXIgYWNjdW11bGF0ZXMgZ29sZCBpbiBvcmRlciB0byBwdXJjaGFzZSBzcGVjaWFsaXplZCBpdGVtcyB0byBpbmNyZWFzZSB0aGUgc3RyZW5ndGggYW5kIGhlYWx0aCBvZiBlYWNoIHBsYXllcidzIGNoYW1waW9uLiBUaGUgc3Ryb25nZXIgdGhlIGNoYW1waW9uIGJlY29tZXMgdGhlIGhpZ2hlciB0aGUgY2hhbmNlIHRoZSB0ZWFtIGNhbiBraWxsIHRoZSBlbmVtaWVzIGFuZCBwdXNoIHRvd2FyZHMgdGhlaXIgYmFzZSB0byBkZXN0cmF5IHRoZSBuZXh1cyBhbmQgd2luIHRoZSBtYXRjaC4NCg0KVGhlIGJlY29tZXMgbXVjaCBtb3JlIGNvbXBsaWNhdGVkIHdoZW4gcHJvZmVzc2lvbmFsIHBsYXllcnMgYW5kIHRlYW1zIGNvbnNpZGVyIHRoZSBzbWFsbGVzdCBkZXRhaWxzLCBzdGF0cywgYW5kIGFjdGlvbnMuIEEgc21hbGwgbWlzdGFrZSBieSBidXlpbmcgdGhlIHdyb25nIGluIGdhbWUgaXRlbSBvciB3YWxraW5nIHRvIHRoZSB3cm9uZyBhcmVhIGFuZCBnZXR0aW5nIGFtYnVzaGVkIGJ5IHRoZSBlbmVteSBjYW4gdHVybiB0aGUgZ2FtZSBhcm91bmQgdG93YXJkcyB0aGUgdGVhbSB0aGF0IHdvdWxkIHNlZW0gdG8gYmUgbG9zaW5nLiANCg0KYGBge3J9DQoNCmBgYA0KDQojIyBQcm9mZXNzaW9uYWwgTGVhZ3VlIG9mIExlZ2VuZHMgRXNwb3J0cw0KDQotdXNlIHRoZSBkYXRhIGFuZCBleHBsYWluIGl0cyBtZWFuaW5nDQotIHVzZSB0aGUgaGlnaCBkaWFtb25kIHJhbmtlZCBnYW1lcyBkYXRhIA0KLSB1c2UgdGhlIHBybyBtYXRjaGVzIHRvIHNob3cgdGhlIGxldmVsIGFuZCBkaWZmZXJlbmNlIGJldHdlZW4gZGlhbW9uZCBhbmQgcHJvIHBsYXllciBnYW1lcw0KDQpgYGB7ciBlY2hvID0gRkFMU0V9DQoNCmBgYA0KDQojIyBXaHkgaXMgdGhpcyBnYW1lIGltYXBjdGZ1bCB0byBFc3BvcnRzPw0KDQo=